package com.woniuxy.amusementparkos.exception.lzw.unifyhanding.code.enumwarehouse;

import com.woniuxy.amusementparkos.exception.lzw.unifyhanding.code.PublicCode;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @author lizhiwen
 * @create 2020-04-29 10:46 下午
 */


@NoArgsConstructor
@AllArgsConstructor
@ToString
public enum PublicEnumCode implements PublicCode {

    /**
     * 存储常用 成功 code
     */
    SUCCESS(true,200,"成功"),

    /**
     * 存储未知 异常 code
     */
    SORRY(false,400,"操作失败，请联系管理员"),

    /**
     * 存储常用 异常 code
     */
    // 空指针异常
    NPE(false,401,"操作异常，请联系管理员！"),
    // 类不存在异常
    CLASS_NOT_FIND(false,402,"操作异常，请联系管理员！"),
    // 数组下标越界
    INDEX_OUT_OF_BOUNDS(false,403,"操作异常，请联系管理员！"),
    // 方法参数错误
    ILLEGAL_ARG(false,404,"操作异常，请联系管理员！"),
    // 没有访问权限
    ILLEGAL_ACC(false,405,"没有访问权限"),
    // 数字运算异常
    ARITHMETIC(false,406,"操作异常，请联系管理员"),
    // 数据类型转换异常
    CLASS_CAST(false,407,"操作异常，请联系管理员"),
    // 数组存储异常
    ARRAY_STORE(false,408,"操作异常，请联系管理员"),
    // 方法不存在异常
    NO_SUCH_METHOD(false,409,"操作异常，请联系管理员"),
    // 实例化异常
    INSTANTIATION(false,410,"操作异常，请联系管理员"),
    // 被中止异常
    INTERRUPTED(false,411,"操作异常，请联系管理员"),
    // 内存不足异常
    OUT_OF_MEMORY(false,412,"操作异常，请联系管理员"),
    // 未找到类定义异常
    NO_CLASS_DEF_FOUNT(false,413,"操作异常，请联系管理员"),
    // 文件未找到异常
    FILE_NOT_FOUNT(false,414,"未找到相关文件"),
    // 文件已结束异常
    EOF(false,415,"文件读取已结束"),
    // 非法参数异常
    ILLEGAL_STATE(false,416,"请填入有效数据");

    /**
     * 为枚举赋值
     */

    boolean success;
    int code;
    String message;

    @Override
    public boolean isSuccess() {
        return success;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }
}
